package org.xx.armory.config;


import static org.xx.armory.commons.Validators.notNull;

/**
 * 用于测试的模拟配置提供程序。
 */
public final class MockConfigurationProvider
        extends AbstractConfigurationProvider
        implements ConfigurationProvider {
    private final Configuration configuration;

    /**
     * 构造用于测试的模拟配置提供程序。
     * <p>此提供程序只能创建预先设置的配置。</p>
     *
     * @param configuration
     *         预先设置的配置，此提供程序只会返回此配置。
     * @throws IllegalArgumentException
     *         如果参数{@code configuration}是{@code null}。
     */
    public MockConfigurationProvider(Configuration configuration) {
        this.configuration = notNull(configuration, "configuration");
    }

    /**
     * {@inheritDoc}
     */
    @Override
    protected final org.xx.armory.config.Configuration load() {
        return this.configuration;
    }
}
